package com.bawei.a2010kotlin.compress;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;

import com.bawei.a2010kotlin.R;

/**
 * Bitmap尺寸压缩：二次采样
 *
 * Bitmap质量压缩： mBitmap.compress() 0-100
 */
public class BitmapCompressActivity extends AppCompatActivity {
    private Bitmap mBitmap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bitmap_compress);
        byte[] data = new byte[]{};//data字节数组，网络请求图片

        //原封不动采样
       // Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

        //二次采样---第一次采样:只采边框
        BitmapFactory.Options options = new BitmapFactory.Options();//配置
        options.inJustDecodeBounds = true;//只采集边框
         BitmapFactory.decodeByteArray(data, 0, data.length, options);//只会将边框采集到内存中
        int outWidth = options.outWidth;//获得原图的宽 200
        int outHeight = options.outHeight;//获得原图的高 200
        //二次采样---计算压缩比例  ImageView 50 50 注意压缩比例必须是2的幂次方 1 2 4 8 16 32 。。。。
        int size=1;//4
        while(outWidth/size>50||outHeight/size>50){
            size*=2;
        }
        //二次采样---第二次采样：按照比例采集
        options.inJustDecodeBounds = false;//不能只采边框，采集像素点
        options.inSampleSize = size;//压缩比例
        Bitmap bitmap = BitmapFactory.decodeByteArray(data,0,data.length,options);//bitmap经过二次采样得到bitmap对象





    }
}